技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2021 iThome 鐵人賽
DAY
8
0
AI & Data
Deep Learning 從零開始到放棄的 30 天 PyTorch 數字辨識模型
系列 第
8
篇
Day-07 Logistic Regression 介紹
13th鐵人賽
CrazyFire
2021-09-22 10:09:55
3218 瀏覽
分享至
在前面兩天我們已經說完基礎的 Regression 跟 Classification 了,為什麼在這裡還要提到一個什麼 Logistic Regression?
Logistic Regression(羅吉斯回歸,這中文實在是太神奇了,我們後面都將用英文稱呼),是一個大家在學習機器學習的路途上,一定會接觸到的,理由是什麼?就筆者自己認為,他是一個披著 Regression 外皮的 Classification ,因為等等就會發現他的公式竟然長得跟 Linear Regression 一模一樣,因此 Logistic Regression 確實有我們必須額外了解的原因,我們等等看下去就知道了
什麼是 Logistic Regression?
Logistic Regression 是一種分類模型,利用現有的資料點,盡可能的找出能將所有資料點分離的那條線
我們來看看一張圖,
from:
Tommy Huang
原本 Regression 是用來預測一個連續的數值,但是在這邊,我們利用 Logistic Regression 來分類資料,且我們從上圖可以發現 Linear Regrssion 跟 Logistic Regression 的公式都是一樣的
那我們回顧 Classification 那邊如何判斷資料的二分類?就是找一個機率
有沒有大於 50% 來做個分辨,只要他對於判斷區塊有超過 50% 的機率,那我們就說我們可以判定他屬於第一類或是其他類
那 Logistic Regression 也是一樣的概念,只是我們就直接帶入數值之後,他是大於零還是小於零
from:
Tommy Huang
等於我們就是利用一個 unit-step function 去直接做判斷
那這邊我們的
的判斷有點太過絕對生硬,也就是他並沒有考慮到資料判斷上會遇到的問題,什麼意思
我們繪製看看一下如果
的話,他的判斷曲線會長怎樣
這個判斷曲線的意思是什麼,是代表了就算資料是
或是
這種我們自己都知道是介於邊緣的資料,有極高機率誤判,但判斷公式仍然會毫不猶豫的給予分辨,這就代表著我們的判斷太過武斷,且毫無彈性
因此 Logistic Regression 利用對數函數 Sigmoid 來達到更有彈性的輸出,我們來看看圖片
橘色的線線就是利用對數函數來做輸出的,可以發現對於判斷界線還有資料判斷的狀況,更加的平滑,因此判斷會更加彈性,例如
而 Sigmoid 的公式是什麼呢?
這邊不多贅述這個對數函數了,有興趣的自己去查都可以看到很清楚的解釋
Logistic Regression V.S. Linear Regression
在最前面我們有提到過,Linear Regression 跟 Logistic Regression 的公式是一樣的,但是判斷卻是不一樣的
我們一樣拉到三步驟去做比較
Model
Linear Regression 的公式很簡單,就是
但是 Logistic Regression 前面有提到,是要分類的,因此公式上多了一個部分,就是
,
,那個 Output 會是 0 or 1
所以這邊可以發現公式真的一模一樣,唯一差異就是 Logistic Regression 多了一個 Sigmoid,去幫忙分類 0,1
Goodness of function
Linear Regression 就是一個很簡單的 Loss function,就是 Mean Square Error,
也就是去看答案的差異
那 Logistic Regression 呢?是不是也就直接用 Mean Square Error 呢?
其實不能,至於原因我強烈推薦去聽
李弘毅老師
的開放式課程,那邊有詳細的解釋
那這邊要怎麼辦呢?
我們回到 Classification 那邊機率的想法,假設我們去計算
被分類成
機率是
那我們 w, b 這個參數好不好就是我們前面提過的
那我們假設最好的
這個參數是
,那最佳的那個機率也會是
,也就是最大的
那最佳的
其實等同於
,然後每一項
可以寫成
,這行式子就是 Cross-entropy loss function
所以到這裡,我們也有 Logistic Regression 的 Loss Function 了,在機器學習三步驟我們只差了一步了,就是 Best Function 了
Find the best function
我們開始微分我們的 cross-entropy loss function,詳細的數學運算我們一樣跳過,結論就是我們一樣用 Gradient Descent 得到了
這邊我們趕緊來看當初 Linear Regression 的 Gradient Descent
竟然長的一毛毛一樣樣,唯一的差別就是 Linear Regression 的
跟
是任意實數,而 Logistic Regression 則是介於 0~1 之間的數值
所以到這裡我們就可以發現 Logistic Regression 真的就是基於 Linear Regression 的概念,成功達到 Classification 的方法
每日小結
Logistic Regression 真的就是披著 Regression 外皮的分類間諜 XDD,他披著預測知名行分類之實
Logistic Regression 和 Linear Regression 最大的差異在於多了一個 Sigmoid Function 去做資料的分類,而選擇 Sigmoid Function 的原因是因為希望資料的判定能夠更有彈性,信心更足
那既然我們發現我們也可以用類 Regression 的概念達到 Classification,那我們明天就來實作 Logistic Regression 試試看...嗎?先賣個關子,明天我們要先處裡一個我們提過的機器學習大前題
留言
追蹤
檢舉
上一篇
Day-06 Classification
下一篇
Day-08 比訓練更重要的事情,Dataset
系列文
Deep Learning 從零開始到放棄的 30 天 PyTorch 數字辨識模型
共
31
篇
目錄
RSS系列文
訂閱系列文
27
人訂閱
27
Day-26 手把手的手寫辨識模型 0x1:資料集整理
28
Day-27 手把手的手寫面是模型 0x2:資料訓練和結果輸出
29
Day-28 手把手的手寫辨識模型 0x3:CNN is the end?模型大哉問
30
Day-29 Pytorch 還可以更輕鬆更簡單!Pytorch Lightning
31
Day-30 不完美收工
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22195
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
請問內網IP如何轉外網IP?
如何寫公式才能利用excel 觸發一個數據時傳送一個訊息給 自已的line呢?有沒有可以用其它方式,來取代line notify 的方法,因為line 開始收費
新手學習編程,哪種編程語言好?
Windows7升級Windows10後網路功能異常
python爬蟲 動態生成網頁104人力銀行
區域網路問題提問
vmware 虛擬機(windows)裡顯示使用容量與實際檔案容量不符合
防火牆與DNS請教
2台 Hyper-V 2008 R2 叢集主機(硬體規格相同), 如何加入一台新機? 謝謝.
OBS使用問題
熱門回答
請問內網IP如何轉外網IP?
防火牆與DNS請教
新手學習編程,哪種編程語言好?
SDX-500電話主機 Fortinet FG-100F port開啟問題
這樣的物件設計好嗎?
熱門文章
每日一篇學習筆記 直到我做完專題 :( [Day33]
每日一篇學習筆記 直到我做完專題 :( [Day34]
每日一篇學習筆記 直到我做完專題 :( [Day35]
隨時切換 WINDOWS 右鍵新舊版選單
每日一篇學習筆記 直到我做完專題 :( [Day36]
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}